package com.ruoyi.dm.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.vo.CommonVO;
import com.ruoyi.common.exception.DataRepeatException;
import com.ruoyi.dm.domain.CollectEstimateVO;
import com.ruoyi.dm.domain.CollectQueryParam;
import com.ruoyi.dm.domain.po.SpaceTrackCollectRecordPO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface ISpaceTrackCollectRecordService extends IService<SpaceTrackCollectRecordPO> {
    /**
     * 检索
     *
     * @return
     */
    IPage query(CollectQueryParam queryParam);

    /**
     * 上传
     *
     * @param files
     * @param fileType
     * @param satelliteCode
     * @param dataType
     * @return
     */
    List<String> uploadFile(MultipartFile[] files, String satellite, String fileType, String satelliteCode, String dataType) throws DataRepeatException;

    /**
     * 删除
     *
     * @param id
     * @return
     */
    boolean delFile(Long id);

    /**
     * 批量删除
     *
     * @param delParam
     * @return
     */
    boolean delBatch(List<Long> delParam);
    /**
     * 下载
     * @param id
     * @return
     */
    String download(Long id);

    /**
     * 批量下载
     * @param downloadParam
     * @return 返回压缩包路径
     */
    String downloadBatch(List<Long>  downloadParam);

    /**
     * 解析
     *
     * @param filePath
     * @return 评估文件路径, 若有.
     */
    boolean analysis (Long filePath);

    /**
     * 批量解析
     *
     * @param ids
     * @return
     */
    boolean analysisBatch(List<Long> ids);

    /**
     * 查看解析结果
     *
     * @param id
     * @return
     */
    CollectEstimateVO lookRes(Long id) throws Exception;

    /**
     * 解析详情
     * @param id
     * @return
     */
    String lookDetailRes(Long id) throws  Exception;

    int checkRepeat(String filename);

    /**
     * 找到空间目标测量数据
     * @return
     */
    List<CommonVO> findStatellite();
}
